#include "mylabel.h"
#include <QDebug>
#include <QArgument>
#include <QMouseEvent>
MyLabel::MyLabel(QWidget *parent) : QLabel(parent)
{
    // 设置鼠标追踪状态
    setMouseTracking(true);
}

void MyLabel::enterEvent(QEvent *event)
{
    qDebug() << "鼠标进入了";
}

void MyLabel::leaveEvent(QEvent *event)
{
    qDebug() << "鼠标离开了";
}

void MyLabel::mouseMoveEvent(QMouseEvent *ev)
{
    qDebug() << "鼠标移动了" ;
}

void MyLabel::mousePressEvent(QMouseEvent *ev)
{

    QString str = QString("x=%1 y=%2").arg(ev->x()).arg(ev->y());
    if(ev->button() == Qt::LeftButton){

        qDebug() << "鼠标按下了" << str;
    }
}

void MyLabel::mouseReleaseEvent(QMouseEvent *ev)
{
    // global 是基于屏幕的坐标
    QString str = QString("globalx=%1 globaly=%2").arg(ev->globalX()).arg(ev->globalY());
    if(ev->button() == Qt::RightButton){
        qDebug() << "鼠标释放了" << str;
    }
}

bool MyLabel::event(QEvent *ev)
{
    // 事件拦截了鼠标按下
    if(ev->type() == QEvent::MouseButtonPress){
        // 类型转换
        QMouseEvent * mEv = static_cast<QMouseEvent *>(ev);
        qDebug() << "鼠标按下了1111";
        return true;
    }
    qDebug() << ev->type();
    // 其他事件 交给弗雷处理 即 默认处理
    return QLabel::event(ev);
}
